# Filters added to this controller apply to all controllers in the application.
# Likewise, all the methods added will be available for all controllers.
include ApplicationHelper

class ApplicationController < ActionController::Base
  helper :all # include all helpers, all the time
  #protect_from_forgery # See ActionController::RequestForgeryProtection for details

  # Scrub sensitive parameters from your log
  # filter_parameter_logging :password

  #pragmatic-minds

  #Por defecto todos los controller estan protegidos por devise para que exista una sesion activa
  before_filter :authenticate_user!

  # ATENCION: Si se desea excluir alguna(s) accion(es) de un controlador en particular hay que definir
  # la siguiente linea al comienzo de cada controlador (varian las acciones):
  #
  # prepend_before_filter :authenticate_user!, :except => [:show, :index]
  #
  # ANTENCION: si hacemos esto hay que sacar del controller en cuestion el control de cancan
  # para los permisos de acceso: load_and_authorize_resource. De ser necesario controlar alguna
  # accion hay que agregarle la siguiente linea: authorize! :new, :model1.
  # No olvidarse de definir los permisos en ability.rb, ejemplo: can :new, :model1

  #atrapa las excepciones de cancan, graba mensaje de error  y envia a la pagina inicial del sistema
  rescue_from CanCan::AccessDenied do |exception|
    flash[:error] = t('lbl_access_denied')
    redirect_to root_url
  end

  #se setea el idioma de la aplicacion
  before_filter :set_locale
  def set_locale
    # Por defecto se toma el español
    I18n.default_locale = 'es'

    # Se busca en el subdomino
    this_domain_ext = request.subdomains.first
    this_host = request.host.split('.').first
    this_domain_lang = DEFAULT_LANGUAGE_BY_DOMAIN.assoc(this_host)
    if this_domain_lang then
      I18n.locale = this_domain_lang[1]
    end

=begin
    # Se busca en el domino
    this_domain_ext = request.host.split('.').last

    # Search for domain extension in possible exts array, then
    # set the language of the domain if a record is found.
    this_domain_lang = DEFAULT_LANGUAGE_BY_DOMAIN.assoc(this_domain_ext)
    if this_domain_lang then
      I18n.locale = this_domain_lang[this_domain_lang]
    end
=end
    
    # Se busca en la URL como parametro
    if params[:locale] then
      I18n.locale = params[:locale]
    end
  end

  #end pragmatic-minds
end
